package com.houdehong.wsclient.client;

import org.java_websocket.client.WebSocketClient;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import java.net.URI;
import java.net.URISyntaxException;

/**
 * 配置WebSocket客户端的组件类
 * 该类负责初始化和连接到指定的WebSocket服务器
 */
@Component
public class WebSocketClientConfigurer {

    /**
     * WebSocket服务器的URL地址
     * 这是与WebSocket服务器建立连接的地址
     */
    private final String wsServerUrl = "ws://127.0.0.1:8081/ws/666";

    /**
     * 创建并返回一个WebSocketClient实例
     * 该方法负责初始化WebSocketClient，并连接到指定的WebSocket服务器
     *
     * @return WebSocketClient实例，用于与WebSocket服务器通信
     */
    @Bean
    public WebSocketClient webSocketClient() {
        try {
            // 创建MyWebSocketClient实例，传入WebSocket服务器的URI
            MyWebSocketClient webSocketClient = new MyWebSocketClient(new URI(wsServerUrl));
            // 连接到WebSocket服务器
            webSocketClient.connect();
            // 返回WebSocketClient实例
            return webSocketClient;
        } catch (URISyntaxException e) {
            // 如果URI语法错误，打印错误堆栈信息
            e.printStackTrace();
        }
        // 如果连接失败或URI语法错误，返回null
        return null;
    }

}
